Timo Sirainen [Wed, 22 Apr 2026 12:44:24 +0000 (15:44 +0300)]
[PATCH 2/3] imap-acl: Fail if ACL identifier is invalid
Reject invalid identifiers early in imap_acl_identifier_parse() using
acl_id_is_valid(). This prevents CR/LF injection and rejects identifiers
that are too long, contain control characters or are not valid UTF-8.
Timo Sirainen [Sun, 19 Apr 2026 23:10:29 +0000 (23:10 +0000)]
[PATCH] lib-sieve: Enforce CPU time limit within :contains and :matches matcher loops
The naive O(N*M) substring search in mcht-contains.c and the naive find loop
in mcht-matches.c can run for hours on a large value (e.g. a message body),
completely bypassing sieve_max_cpu_time because that limit was only checked
between bytecode operations.
Expose the active CPU limit via sieve_runtime_cpu_limit_exceeded() and poll
it every 4096 inner iterations. When the limit is hit the match returns
SIEVE_EXEC_RESOURCE_LIMIT, matching the existing behavior at the bytecode
boundary. This is a minimal safety net ahead of switching the matchers to
algorithms that do not require it.
Aki Tuomi [Fri, 25 Jul 2025 05:16:52 +0000 (08:16 +0300)]
[PATCH] auth: Use AUTH_CACHE_KEY_USER instead of per-database constants
Fixes cache key issue where users would end up overwriting
each other in cache due to cache key being essentially static
string because we no longer support %u.
Dovecot 2.4 introduced a regression that broke GSSAPI authentication for
some clients. This patch contains a fix provided by the upstream maintainers.
Last-Update: 2025-05-02
Gbp-Pq: Name bug1104549-gssapi-regression.patch
* Import upstream fixes for multiple security issues. (Closes: #1146018)
- CVE-2026-27852: DoS by sending mail with bad header
- CVE-2026-33263: submission-login: Panic when
mail_max_userip_connections is reached: Panic: epoll_ctl(del, 8)
failed: Bad file descriptor
- CVE-2026-33604: SMTP Smuggling via Missing Dot-Stuffing After Bare
Carriage Return
- CVE-2026-33605: managesieve-login: Pre-auth crash
- CVE-2026-33607: Dovecot IMAP LIST match_sub() Exponential
Backtracking — CPU Denial of Service
- CVE-2026-40013: pigeonhole: Stack Buffer Underflow in Pigeonhole
ManageSieve CHECKSCRIPT/PUTSCRIPT
- CVE-2026-40014: IMAP THREAD REFERENCES O(N²) CPU DoS via Crafted
References Header (index-thread-links.c)
- CVE-2026-40015: imap-hibernate can be crashed
- CVE-2026-40017: IMAP THREAD O(M³) CPU DoS via CRC32 Hash Collision
in strmap (mail-index-strmap.c / hash2.c)
- CVE-2026-40018: MySQL multi-byte escaping wrong
- CVE-2026-40204: acl: lda_mailbox_autocreate can bypass acl
restrictions
- CVE-2026-42007: Sieve editheader RCE
- CVE-2026-42391: imap: Pre-login memory/CPU growth with ID command
- CVE-2026-42394: sieve: symlink traversal flaw could result in
arbitrary file disclosure
- CVE-2026-52681: Sieve resource usage tracking lost when active
script changes
- CVE-2026-52687: IMAP: COMPRESS ZSTD can cause excessive memory usage
- CVE-2026-73209: imap-login crash: Self-recursion on zero-output
decompress chunks
- CVE-2026-33606: dsync: Mail content can cause dsync protocol
injection
- CVE-2026-40203: IMAP Compression Can Reveal Whether a Small Synced
Email Body Matches Sender-Chosen Text
- CVE-2026-42008: XCLIENT FORWARD= bare token not namespaced, allows
nopassword injection via trusted proxy
- CVE-2026-42392: imap-urlauth leaks memory into user-visible error
messages
- CVE-2026-42393: doveadm_password or api key length can still be
leaked with timing comparisons
- CVE-2026-42395: Single NUL-Byte XCLIENT FORWARD Payload Crashes
- CVE-2026-40205: OAuth2 passdb scope enforcement bypass via OR
semantics in remote validation path
- CVE-2026-73208: auth: db-oauth2: aud claim used as fallback for
missing scope claim
* lib-mail: istream-header-filter - Fix potential assert-crash
(Closes: #1144639)
* CI: Disable test-build-twice job, which is known to fail on trixie